﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;

namespace PubSubLite
{
    public interface ISubscribersStorage
    {
        void AddCommandCallback<T>(Guid messageID, Action<T> callback);
        Delegate GetCommandCallback(Guid messageID);
        void AddSubscriber<T>(ISubscription<T> subscription);
        void RemoveSubscription(Guid id);
        void Clear();
        IEnumerable<ISubscription<T>> GetSubscribers<T>();
        ICollection GetSubscribersByType(Type type);


    }
}
